home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 July & August / PCWorld_2006-07-08_cd.bin / komunikace / apache / apache_2[1].2.2-win32-x86-no_ssl.msi / Data1.cab / installconf22.awk < prev    next >
Text File  |  2006-05-01  |  5KB  |  131 lines

  1. #
  2. # InstallConf.awk Apache HTTP 2.2 script to rewrite the @@ServerRoot@@ 
  3. # tags in httpd-win.conf to httpd.default.conf - then duplicate the
  4. # conf files if they don't already exist.
  5. #
  6. # Note that we -don't- want the ARGV file list, so no additional {} blocks
  7. # are coded.  Use explicit args (more reliable on Win32) and use the fact
  8. # that ARGV[] params are -not- '\' escaped to process the C:\Foo\Bar Win32
  9. # path format.  Note that awk var=path would not succeed, since it -does-
  10. # escape backslashes in the assignment.  Note also, a trailing space is
  11. # required for paths, or the trailing quote following the backslash is 
  12. # escaped, rather than parsed.
  13. #
  14. BEGIN { 
  15.     domainname = ARGV[1];
  16.     servername = ARGV[2];
  17.     serveradmin = ARGV[3];
  18.     serverport = ARGV[4];
  19.     serversslport = ARGV[5];
  20.     serverroot = ARGV[6];
  21.  
  22.     delete ARGV[6];
  23.     delete ARGV[5];
  24.     delete ARGV[4];
  25.     delete ARGV[3];
  26.     delete ARGV[2];
  27.     delete ARGV[1];
  28.  
  29.     gsub( /\\/, "/", serverroot );
  30.     gsub( /[ \/]+$/, "", serverroot );
  31.     tstfl = serverroot "/logs/install.log"
  32.     confroot = serverroot "/conf/";
  33.     confdefault = confroot "default/";
  34.  
  35.     print "Installing Apache HTTP 2.0 server with" >tstfl;
  36.     print " DomainName =    " domainname >tstfl;
  37.     print " ServerName =    " servername >tstfl;
  38.     print " ServerAdmin =   " serveradmin >tstfl;
  39.     print " ServerPort =    " serverport >tstfl;
  40.     print " ServerSslPort = " serverport >tstfl;
  41.     print " ServerRoot =    " serverroot >tstfl;
  42.  
  43.     filelist["httpd.conf"] = "httpd-win.conf";
  44.     filelist["httpd-autoindex.conf"] = "httpd-autoindex.conf.in";
  45.     filelist["httpd-dav.conf"] = "httpd-dav.conf.in";
  46.     filelist["httpd-default.conf"] = "httpd-default.conf.in";
  47.     filelist["httpd-info.conf"] = "httpd-info.conf.in";
  48.     filelist["httpd-languages.conf"] = "httpd-languages.conf.in";
  49.     filelist["httpd-manual.conf"] = "httpd-manual.conf.in";
  50.     filelist["httpd-mpm.conf"] = "httpd-mpm.conf.in";
  51.     filelist["httpd-multilang-errordoc.conf"] = "httpd-multilang-errordoc.conf.in";
  52.     filelist["httpd-ssl.conf"] = "httpd-ssl.conf.in";
  53.     filelist["httpd-userdir.conf"] = "httpd-userdir.conf.in";
  54.     filelist["httpd-vhosts.conf"] = "httpd-vhosts.conf.in";
  55.  
  56.     for ( conffile in filelist ) {
  57.       srcfl = confdefault filelist[conffile];
  58.       dstfl = confdefault conffile;
  59.       while ( ( getline < srcfl ) > 0 ) {
  60.     gsub( /SSLMutex  file:@exp_runtimedir@\/ssl_mutex/, "SSLMutex default" );
  61.     gsub( /@@ServerRoot@@/,   serverroot );
  62.     gsub( /@exp_cgidir@/,     serverroot "/cgi-bin" );
  63.     gsub( /@exp_sysconfdir@/, serverroot "/conf" );
  64.     gsub( /@exp_errordir@/,   serverroot "/error" );
  65.     gsub( /@exp_htdocsdir@/,  serverroot "/htdocs" );
  66.     gsub( /@exp_iconsdir@/,   serverroot "/icons" );
  67.     gsub( /@exp_logfiledir@/, serverroot "/logs" );
  68.     gsub( /@exp_runtimedir@/, serverroot "/logs" );
  69.     gsub( /@exp_manualdir@/,  serverroot "/manual" );
  70.     gsub( /@rel_runtimedir@/, "logs" );
  71.     gsub( /@rel_logfiledir@/, "logs" );
  72.     gsub( /\/home\/\*\/public_html/, "\"C:/Documents and Settings/*/My Documents/My Website\"" );
  73.     gsub( /UserDir public_html/, "UserDir \"My Documents/My Website\"" );
  74.         gsub( /www.example.com/,  servername );
  75.         gsub( /@@ServerAdmin@@/,  serveradmin );
  76.         gsub( /you@example.com/,  serveradmin );
  77.     gsub( /@@ServerName@@/,   servername );
  78.         gsub( /www.example.com/,  servername );
  79.         gsub( /@@ServerAdmin@@/,  serveradmin );
  80.         gsub( /you@example.com/,  serveradmin );
  81.         gsub( /@@DomainName@@/,   domainname );
  82.         gsub( /example.com/,      domainname );
  83.         gsub( /@@Port@@/,         serverport );
  84.     gsub( /443/,              serversslport );
  85.         print $0 > dstfl;
  86.       }
  87.       close(srcfl);
  88.  
  89.       if ( close(dstfl) >= 0 ) {
  90.         print "Rewrote " srcfl "\n to " dstfl > tstfl;
  91.         gsub(/\//, "\\", srcfl);
  92.         if (system("del \"" srcfl "\"")) {
  93.           print "Failed to remove " srcfl > tstfl;
  94.         } else {
  95.           print "Successfully removed " srcfl > tstfl;
  96.         }
  97.       } else {
  98.         print "Failed to rewrite " srcfl "\n to " dstfl > tstfl;
  99.       }
  100.       filelist[conffile] = "extra/";
  101.     }
  102.  
  103.     filelist["httpd.conf"] = "";
  104.     filelist["charset.conv"] = "";
  105.     filelist["magic"] = "";
  106.     filelist["mime.types"] = "";
  107.  
  108.     for ( conffile in filelist ) {
  109.       srcfl = confdefault conffile;
  110.       dstfl = confroot filelist[conffile] conffile;
  111.       if ( ( getline < dstfl ) < 0 ) {
  112.     while ( ( getline < srcfl ) > 0 ) {
  113.       print $0 > dstfl;
  114.         }
  115.         print "Duplicated " srcfl "\n to " dstfl > tstfl;
  116.       } else {
  117.     print "Existing file " dstfl " preserved" > tstfl;
  118.       }
  119.       close(srcfl);
  120.       close(dstfl);
  121.     }
  122.  
  123.     srcfl = confdefault "InstallConf22.awk";
  124.     gsub(/\//, "\\", srcfl);
  125.     if (system("del \"" srcfl "\"")) {
  126.         print "Failed to remove " srcfl > tstfl;
  127.     } else {
  128.         print "Successfully removed " srcfl > tstfl;
  129.     }
  130.     close(tstfl);
  131. }